import 'package:equatable/equatable.dart';

abstract class WebPurchaseItemModel {
  String get sku;

  String get currency;

  String get prettifiedPrice;
}

class MonthSubscriptionModel extends Equatable implements WebPurchaseItemModel {
  const MonthSubscriptionModel({
    required this.sku,
    required this.currency,
    required this.prettifiedPrice,
  });

  @override
  final String sku;

  @override
  final String currency;

  @override
  final String prettifiedPrice;

  @override
  List<Object?> get props {
    return [
      sku,
      currency,
      prettifiedPrice,
    ];
  }
}

class YearSubscriptionModel extends Equatable implements WebPurchaseItemModel {
  const YearSubscriptionModel({
    required this.sku,
    required this.currency,
    required this.prettifiedPrice,
    required this.prettifiedMonthlyPrice,
  });

  @override
  final String sku;

  @override
  final String currency;

  @override
  final String prettifiedPrice;

  final String prettifiedMonthlyPrice;

  @override
  List<Object?> get props {
    return [
      sku,
      currency,
      prettifiedPrice,
      prettifiedMonthlyPrice,
    ];
  }
}

class LifetimePurchaseItemModel extends Equatable implements WebPurchaseItemModel {
  const LifetimePurchaseItemModel({
    required this.sku,
    required this.currency,
    required this.prettifiedPrice,
  });

  @override
  final String sku;

  @override
  final String currency;

  @override
  final String prettifiedPrice;

  @override
  List<Object?> get props {
    return [
      sku,
      currency,
      prettifiedPrice,
    ];
  }
}
